{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 27,
   "metadata": {},
   "outputs": [],
   "source": [
    "import matplotlib.pyplot as plt\n",
    "import numpy as np\n",
    "import pandas as pd"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "metadata": {},
   "outputs": [],
   "source": [
    "plt.rcParams['font.size'] = 14\n",
    "plt.rcParams[\"font.weight\"] = \"bold\"\n",
    "plt.rcParams[\"axes.labelweight\"] = \"bold\"\n",
    "plt.rcParams[\"lines.linewidth\"] = 2"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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xQrMmjULO3fuhL+/PwAgPT0d7777bsUTdegQoD412bYtULdu0bTCQiArS74k2sur4tsiIiKiasvpkixfX18EBAQgMzOz1MDHFRYtWoSvvvoKiqJgwYIFmD17tt359uzZg0uXLmnDw4cP1/4PDg5G3759sWHDBgDA+vXrMXfuXLvrycvLQ15enjaccb17BrPZDLP6AmgAHv/9L9RK0MJevWCxbpeWmgqEhsqnCq2WqU7UvJqrafr1Yr6Z79qA+Wa+awN3yq+upws7d+6M7du3V1o/WAkJCXjqqacAAJMmTcKtt95aapC1f/9+m+GYmJhSh48dO4a8vDyYivdpBWDOnDl45ZVXSozfvn07fH19teE+S5ag7vX/t7Vvjxy1ryygqPRq27bSslZtbN26taqTUCWY79qF+a5dmO/aITs7u6qToNEVZL3yyiv4/vvvsXTpUkyaNAnt7b0YuQIeeeQRXL16FU2aNMGbb75Z5rypqak2wwHFXsKsVhcC8h2MaWlpaNCgQYn1zJw5EzNmzNCGMzIyEBkZiX79+iEkJESONJthPHUKACCiotAvNhZWC8huGwYMqNYvgjabzdi6dSsGDhwIYy1quM98M9+1AfPNfNcGKSkpVZ0Eja4ga9u2bejatSt2796NLl26YPDgwWjRogX8indlAODFF190at0LFizApk2boCgKFi5ciDp16ji1fPFuJcrqZsKayWSyW8JlNBqLTs78fG28EhAAo6IUzZiaCrRsCagBWTVnk+9ahPmuXZjv2oX5rh3cKa+6gqyXX35Z67OqoKAAX331Fb766iu78zoTZOXm5mqlSU888QT69OlT7jIhxYIa9clHe8MeHh4ICgpyOD0lWAVZNq/Kyc+XTxpGRelfNxEREdUouvrJsqZcL80RQpT4OCs3N1d7Jc97771n0wHp999/r833/fffa52StmvXzmYdp65X56lOnjyp/d+8eXO7pVUOKy3IUjsfDQvTv24iIiKqUXS/u1CxriqrQp07d0Z4eDguXrwIAFi7di2GDRsGAEhOTsaOHTu0eYcOHVqxjVkHWWpxpMUi22LFxgIu6HyViIiIagZdQdaZM2dcnAzJy8vLpgsGa99//z2Sk5MBAKGhoejTpw9at24Ng8GAmTNnYurUqQCA5cuXw2KxoFWrVlixYgWysrIAAIGBgZg2bVrFEmivJOvqVSAo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Edq1a4fk5GQA0BUsuS2WZBEREZETdAVZTz31FHx9fQEAx44d0570O3jwoNbTqp+fH6ZOneqiZLoBlmQRERGRE3QFWU2aNMGyZcvg7e0NIYT2BJ/619vbG0uXLq1Qj+9uR3260GAAPKvd24iIiIjoBtMdLQwdOhQHDx7Ee++9h59++gmpqakIDg5Gjx49MHXqVF3tsdyaWpLl6QlcL7kjIiIiKk2FimSio6NtulKo0ayDLCIiIqJy6KourJUYZBEREZETHIoYJkyYoGvliqLgs88+07Ws22GQRURERE5wKGJYtGiR9gSho4QQDLKIiIio1nIqYlCfHrSmKIrN+OLDNYb6dKFVT/NEREREpXEoyOrdu3eJkqykpCQcOnQIQgg0adIE9evXx+XLl7X3GjZt2rTir7JxJyzJIiIiIic4FDHs2LHDZjgpKQndu3dHUFAQvvrqK9x8883atF27duHOO+9EdnY2li1b5tLEVik1yGJJFhERETlA19OFM2fOxJkzZzBhwgSbAAsAevTogQkTJiAhIQF///vfXZLIKmexAAUF8n+WZBEREZEDdAVZX331FQDAYrHYna62ydq4caPOZLkZtT0WwCCLiIiIHKIryMrIyAAAfPbZZyWqErdv347/+7//AwBkZmZWLHXuwvq9hawuJCIiIgfoKpZp27Yt9uzZg4yMDNx6662oX78+wsLCcOXKFVy+fFnrvqFNmzauTm/VsC7JYpBFREREDtBVkvX8889rgZQQAomJiThw4AASExNtum+YOXOmyxJapaxLslhdSERERA7QFWTde++9+OCDD2AymbRx1sGVyWTCe++9h3vvvbfiKXQHrC4kIiIiJ+kulpk0aRLuuusuLF26FHv27MHVq1dRt25ddO7cGQ8++CAaNWrkynRWLZZkERERkZMqFDFERETgueeec1Va3Jd1kOXlVXXpICIiomqjwsUy+/fvx+7du5GWloagoCD06NEDbdu2dUXa3AerC4mIiMhJuoOsy5cv48EHH8T27dtLTOvfvz8+//xzNGjQoEKJcxvWTxeyJIuIiIgcoKvhe05ODvr374/t27eXeBm0EALfffcdBg4ciJycHJckssqxupCIiIicpCvI+vDDD3H48GFtWAihfdThQ4cO4aOPPnJNKqsagywiIiJykq4ga+3atdr/zz77LA4ePIjk5GQcPHgQzzzzjDZtzZo1FU+hO2CQRURERE7S1Sbr8OHDUBQFI0aMwBtvvKGNDw4Oxty5c3H27FmsXr0aR44ccVlCqxSDLCIiInKSrpKsrKwsAEDLli3tTm/RooXNfNWedZBl1QErERERUWl0BVnBwcEAgC1btpRo+G6xWLBlyxab+ao966cLGWQRERGRA3RVF3bq1AkbN27Ezz//jF69emH06NGoX78+Ll++jKVLl+Lnn3+Goijo3Lmzq9NbNViSRURERE7SFWSNHz8eGzduBADs3r0bu3fvLnW+GoFBFhERETlJV3Xh8OHDMWLECJuqwuLVhiNGjMCwYcMqljp3wYbvRERE5CRdQRYArFixAq+88gqCgoJs+scKCgrC7NmzsXz5cpclssqxJIuIiIicpPu1Oh4eHpg1axb+8Y9/4OjRo0hNTUVwcDDi4uKgKIor01j1GGQRERGRkyr8gmhFUbQuG2os66cLvb2rLh1ERERUbeiqLrx06RK2bNmCLVu2ID09HYDsoLRfv34IDAxEVFQUPvjgA5cmtEqxJIuIiIicpKsk67333sPcuXNhMBiQlJQEi8WCIUOG4Ny5cxBCIDMzE1OnTkV0dDSGDBni6jTfeAyyiIiIyEm6SrJ++eUXCCHQvXt3BAYGYufOnTh79qzNPEKImvmCaKOx6tJBRERE1YauIOvEiRNQFAVt2rQBIIMuAAgPD8cXX3yB6OhoAMAff/zhmlRWNZZkERERkZN0BVlJSUkAgEaNGgEAjh49CgC4++67cc899+CBBx6wma/aY5BFRERETtIVZFksFgBFL4A+cuQIFEVB8+bNAQB+fn4AAK+a0nEn311IRERETtLV8L1hw4Y4d+4cli5disDAQPz6668AoHXlcOnSJQBAWFiYi5JZxViSRURERE7SVZJ1yy23QAiBCxcuYObMmSgsLITJZEKPHj0AAMePH4eiKGjatKlLE1tlGGQRERGRk3QFWc8//zx8fX0hhNBeqTN16lT4+/sjPT0dO3bsAAAt6Kr2+O5CIiIicpKu6sI2bdrgt99+w+LFi5Gbm4tevXph+PDhAIC0tDS88sorAIB7773XdSmtStZBFnt8JyIiIgfofq1Oy5Yt8cYbb5QYHx0djeeee65CiXI7fK0OEREROUlXdWGtwzZZRERE5CSHSrL69+8PAJg8eTJGjBihDZdHURRs27ZNf+rcBdtkERERkZMcCrJ27NgBRVFw55132gyXRQhR7jzVhhpkeXoCNSVPREREVKl0t8lSnyqsFdQgy2Co2nQQERFRteFQkDVmzBibdxWqw7WGdUkWERERkQMcihoWLVpU5nCNpz5daDRWbTqIiIio2uDThY5gSRYRERE5qUJB1s6dOzFmzBi0bt0aERERaN26NcaMGYMffvjBVelzDwyyiIiIyEm6g6wnn3wSffv2xbJly3D48GFcunQJR44cwbJly9CvXz9MmzZN13oTEhLw4YcfYuTIkWjbti3q1asHo9GIevXqYcCAAViyZEmpje5Xr16NAQMGICQkBCaTCdHR0Zg4cSKOHz+uN5uSGmSxupCIiIgcpCvIev/99/Huu++WCHbUYSEE3n//fbz//vtOr/vzzz/H448/jlWrVuGvv/5CcnIyCgoKkJycjG3btmHs2LEYOnQoCgsLbbY7btw4xMfHY9u2bUhNTUV+fj7Onj2LBQsWoF27dti4caOerEosySIiIiIn6QqyPvjgA+1/T09P9OvXDyNHjkS/fv3g6ekJRVG0QEuvBg0aYMKECXjttdfw8MMPw9vqdTYbNmzAwoULteH58+dj8eLF2vDIkSPx6quvolWrVgCA3NxcjBo1CgkJCfoSwyCLiIiInKQrajh58iQURUGjRo3www8/ICoqSpt25swZ9O7dGxcuXMDp06edXnfjxo3x+eefY+TIkfC0CmpGjRpl09P8pk2b8PDDD6OgoABz5syxmW/ZsmUAgClTpiA6OhqZmZlIT0/Hu+++i7lz5zqXIIsFUEvNWF1IREREDtJVklWvXj0AwOjRo20CLEC+IHr06NEAgLCwMKfXPWrUKIwePdomwAKAfv36ISQkRBvOv166tGfPHly6dEkbP3z4cO3/4OBg9O3bVxtev3690+mxeTk0gywiIiJykK6SrGHDhuG9995Denq63elXr14FAIwYMUJ3wopLTEy02V7Xrl0BAPv377eZLyYmptThY8eOIS8vDyY7L3nOy8tDXl6eNpyRkQEAMGdna+Msnp4otA66aiDz9fyZa3g+i2O+me/agPlmvmsDd8qvriDr1Vdfxfbt27FgwQL06tUL999/v9YOa9WqVVi4cCE6d+6MV155xSWJLCgowKOPPoqCggIAsoRs0qRJAIDU1FSbeQMCAmyG/f39tf8tFgvS0tLQoEGDEtuY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M7z33nu4cOEC/vOf/6Bp06YQQiA/Px/Lly9Hjx49sGnTpgolaseOHQ41sC/+yh3rF0Tn5eXh3LlzWLBgAZo3b16h9AAAPKt9l2JERER0A+l6dyEgO/mcPn065s+fj4iICJvuHdypt1WXMBoBJ7qvICIiItJVPJOTk4PFixdj/vz5OHz4MICiTj87d+6MFi1auC6F7oClWEREROQkp6KHM2fOYP78+ViwYAHS09O1wMrT0xPDhw/H9OnT0b1790pJaJVikEVEREROcjh6uOeee/D111/DYrFowVVoaKj2ZGGFntxzd2z0TkRERE5yOMhav3699r/BYMDdd9+NBx98EN7e3ti3bx/27dtnd7kKP9XnDgyGqk4BERERVTNO1YOpjdstFgvWrVuHdevWlTt/QUGB7sS5DZZkERERkZMq1NiotPcUKopyw99hWKkYZBEREZGTnAqyHA2calSABbDhOxERETnN4ehh+/btlZkO98aSLCIiInKSw0FWnz59KjMd7o0lWUREROQk3T2+1yoMsoiIiMhJDLIcwSCLiIiInMQgyxFsk0VEREROYpDlCJZkERERkZMYZDmCJVlERETkJAZZjvDyquoUEBERUTXDIMsRLMkiIiIiJzHIcgRLsoiIiMhJDLIcwSCLiIiInMQgyxEMsoiIiMhJDLIcwSCLiIiInMQgyxEmU1WngIiIiKoZBlmOYEkWEREROYlBliMYZBEREZGTGGQ5gtWFRERE5CQGWY5gkEVEREROYpDlCG/vqk4BERERVTMMshzBNllERETkJAZZjmB1IRERETmJQZYjGGQRERGRkxhkOYJtsoiIiMhJDLIcwSCLiIiInMQgyxEMsoiIiMhJDLIcwSCLiIiInMQgyxFs+E5EREROYpDlCJZkERERkZMYZDmCJVlERETkJAZZjmCP70REROQkBlmOYJBFRERETmKQ5QgGWUREROQkBlmOMBqrOgVERERUzTDIcgRLsoiIiMhJDLIcwSCLiIiInMQgqxwCAAyGqk4GERERVTMMssrj6QkoSlWngoiIiKoZBlnlYaN3IiIi0oFBVnlYVUhEREQ6MMgqD0uyiIiISAcGWeVhSRYRERHpwCCrPCzJIiIiIh0YZJXH07OqU0BERETVEIOs8rAki4iIiHSocUHWsWPHMHHiRERHR8NkMiE0NBQDBw7E6tWrda1PeNS4XUREREQ3QI2qC9u4cSOGDx+O3NxcbVxKSgq+/fZbfPvtt9i4cSMWLlwIxZnORVmSRURERDrUmGKahIQEPPDAA1qA1apVK7z66qsYOXKkNs/ixYvxwQcfOLditskiIiIiHWpMBPHOO+8gIyMDAODv74+dO3ciODgYAODh4YHly5cDAP75z39i0qRJMDjaNQNLsoiIiEiHGlOStX79eu3/vn37agEWAAwfPlz7/+LFi9izZ4/jK2Y/WURERKRDjSjJysvLw7Fjx7ThmJgYm+nFh/fv349u3bqVWEdeXp42rJaKWYxGmM1mVyfZbal5rU15Bphv5rt2YL6Z79rAnfJbI4KstLQ0CCG04YCAAJvp/v7+NsMpKSkl1jFnzhy88sorJcZfFgI7N250UUqrj61bt1Z1EqoE8127MN+1C/NdO2RnZ1d1EjQ1Isgqzjrgsjdsz8yZMzFjxgxtOCMjA5GRkQj5xz8wZOBAl6fRXZnNZmzduhUDBw6EsRa1R2O+me/agPlmvmsDewUpVaVGBFlBQUFQFEULpjIzM22mFx8ODQ0tsQ6TyQSTyVRivKFbt1p1cqqMRiPzXYsw37UL81271LZ8u1Nea0TDd5PJhLi4OG341KlTNtNPnjxpM9y2bdsbki4iIiKqvWpEkAUAd999t/b/jh07kJqaqg2vWbNG+z8iIgKdO3e+oWkjIiKi2qfGBFnTpk3TGrxnZmaiV69emD17Nh544AGbV+rMnDnT8T6yiIiIiHSqEW2yAFlCtXz5cgwfPhx5eXk4dOgQXnzxRZt5xo4di8cff7yKUkhERES1SY0pyQKAO+64A/v378f48eMRGRkJLy8vBAUFoX///li1ahUWLVrk3HsLiYiIiHSqMSVZqubNm2PBggVVnQwiIiKq5WpUSRYRERGRu2CQRURERFQJGGQRERERVQIGWURERESVgEEWERERUSVgkEVERERUCRhkEREREVWCGtdPlqsIIQDIV/S40xu9K5vZbEZ2djYyMjKY71qA+Wa+awPmu3blOzMzE0DRfbwqMcgqRUpKCgCgSZMmVZwSIiIiclZKSgoCAwOrNA0MskoRHBwMADh37lyVH6QbKSMjA5GRkTh//rz2wu3agPlmvmsD5pv5rg3S09PRuHFj7T5elRhklcLDQzZXCwwMrFUnpyogIID5rkWY79qF+a5damu+1ft4laahqhNAREREVBMxyCIiIiKqBAyySmEymfDSSy/BZDJVdVJuKOab+a4NmG/muzZgvqs+34pwh2cciYiIiGoYlmQRERERVQIGWURERESVgEEWERERUSVgkEVERERUCWpUkHXs2DFMnDgR0dHRMJlMCA0NxcCBA7F69Wpd69u6dSvuvvtuhIWFwcvLCxERERg5ciT27NlT6jKXLl3C9OnT0axZM/j4+CAoKAg9e/bEJ598gsLCQr1ZK5Or8v3nn39izpw5GDx4MOLi4hAYGAiTyYTIyEjcf//9+OGHH+wu9/LLL0NRlDI/Dz/8sCuyasNV+T5z5ky56ff0tN9vb25uLt5880106tQJAQEB8PPzQ5s2bfCPf/wD6enprshmCa7Kd3l5Vj99+/a1WW7cuHHlLvPaa6+5MMfAmjVrMGnSJHTu3Bkmk8lmW3rp2Y838ni7Ms8JCQn48MMPMXLkSLRt2xb16tWD0WhEvXr1MGDAACxZssTue9527NhR7rFu2rSpK7KrcfWxjo6OLjcPP/74o91lV69ejQEDBiAkJAQmkwnR0dGYOHEijh8/XpEs2uXKfPft29fh77e1RYsWlTv/gAEDXJVlAPrPzfK4zfdb1BBff/218Pb2FgDsfsaOHSssFovD65s1a1ap6/Lw8BCffvppiWV+++03ERwcXOpygwYNEjk5Oa7MtkvzPWjQoFLXo37mzp1bYrmXXnqp3OUmTpzotvk+ffp0uek3GAwllktOThYdO3YsdZno6Ghx6tQpt813eXlWP3379rVZbuzYseUuM3v2bJfmu3379qVuSw89+/FGH29X5nnOnDnlHrO77rpLFBQU2Cy3ffv2cpeLjY11VZaFEK4/1lFRUeXmYefOnTbLWCyWMs9zb29v8fXXX7siuxpX5rtPnz4Of7+tLVy4sNz5b731VldlWQih/9wsizt9v2vEa3USEhLwwAMPIDc3FwDQqlUrjBw5EocOHcLKlSsBAIsXL0aXLl0wZcqUcte3YcMGzJ49Wxu+/fbb0bNnT3z99dfYvXs3LBYLJk+ejM6dO6NDhw4AgGvXruG+++5DamoqACAyMhLjx49HYmIiPvvsMxQWFmLz5s2YNWsW5s2b55b5VrVu3Vr79fbbb79hw4YN2rQXXngBQ4cORVxcnN1l4+Pj0blz5xLj27Vr50zWylRZ+QaAmJgYTJ48ucR4e69nePTRR7F3714AgI+PDx577DF4e3vj008/RUpKCs6cOYORI0di9+7dLnm9g6vzXdp5ePLkSXz00Ufa8ODBg0tdx6RJkxAbG1tifM+ePcvdvjMURUFsbCw6d+6MxMREfP/997rXpXc/3ujj7co8qxo0aIAhQ4YgJiYGZ86cwdKlS7X9sGHDBixcuLDUUufOnTsjPj6+xPigoKAKp8taZeRbVdo536RJE5vh+fPnY/HixdrwyJEj0apVK6xcuRKHDh1Cbm4uRo0ahYMHDyIiIsIlaXNlvidPnow777yzxPiCggLMmjULBQUFAMr+bg8cOBC33XZbifFRUVG601WWipyb1tzu++10WOaGnnnmGS3a9Pf3FykpKdq0UaNGadPCw8Mdioa7dOmiLXPLLbdo4/Py8kSTJk20affff7827f3339fGK4oijhw5ok174YUXbH4BpaamumW+X331VfHDDz+UGP/iiy/aRPTvvvuuzXTrkqyFCxdWOF/lcXW+rUuy+vTp41AaDh48aLNPPvnkE23ali1bbKZt3LjR6Tza4+p8l+aRRx7R1hUQECDS09Ntplv/wt++fbvu7TgjOztb+794yamz9OzHqjjerszzsmXLxOeffy7MZrPN+O+++85mvcOGDbOZbl2SNXbsWF35cJYr8y2EbUmWI8xms2jYsKG2zKhRo7RpKSkpwt/fX5v27LPP6kqTPa7Otz3Lli2zWW/x7691SdZLL73ksu2WlyY952Zp3O37XSOCrLi4OJtiRWtr16612UE///xzmeu6dOmSzfz/+te/bKZPnTpVm+bn5ycKCwuFELZVbW3btrVZ5vfff7dZ58qVK12Qa9fmuywHDhywWddbb71lM936ghARESH8/PyEyWQSTZo0ERMmTBAHDx7UvW17XJ1v6yDL399f1K9fX3h6eorQ0FAxYMAAsXz58hLLFC/itv4iWywWERAQoE2bNGlSxTMtbszxTkxMFCaTSVvP008/XWIe6yCrcePGwtvbW/j4+Ii4uDgxbdo0cfbsWV3bdlRFb0B69mNVHG9rlXXTFUKIkJAQbb133nmnzTTrICs4OFiEhIQIo9Eo6tevL+666y6xadMml6alOFcHWTExMcJoNAp/f3/RpUsXMWfOHJGVlWUz/+7du222uXbtWpvpd911lzatRYsWuvNWlso63tbVYZ07dy4x3TrIql+/vggMDBRGo1E0atRIxMfHi927d7ssLY4o69wsjbt9v6t9w/e8vDwcO3ZMG46JibGZXnx4//79Za6v+PSy1peVlYWTJ0+WWK6iaXCEq/NdliNHjtgMd+3atdR5ExISkJWVhby8PJw+fRoLFizATTfdhC+++EL39q1Vdr4zMzNx+fJlFBQUIDk5Gd9++y1GjRqFkSNHwmKx2F1vYGAggoODtWFFUWyqH6rT8X7vvfeQl5cHADAajXjyySfLnP/cuXPIzc1FTk4Ojh49infffRft2rXDrl27dG2/sundjzf6eN8oiYmJNg16y/pup6amIiUlBWazGZcvX8aGDRswePBgPPPMMzciqS5x6tQpmM1mZGZm4rfffsPMmTPRpUsXJCUlafM4cw84duyY9n1xd99++61WHQYAzz77bJnzX758Genp6TCbzbhw4QJWrVqFW265Be+9915lJxWAc+emyh2/39W+TVZaWprNkwcBAQE20/39/W2GU1JSylyf2qbKmfU1a9bMZrmKpsERrs53aRITE22+jP369UOvXr1KzFenTh0MHDgQzZo1g8lkws6dO7Fjxw4A8sQfO3YsbrnlFtSvX19XOlSVlW9FUdCtWzfcdNNNaNCgAc6cOYMVK1YgJycHALBq1Sr06tVLq8Mv63gXT0d1Od5ZWVn48MMPteFRo0aV2t4kJCQEAwcORGxsLCwWC7Zs2YLff/8dAJCeno74+HgcP34c3t7eTqejMundjzf6eN8IBQUFePTRR7X2OWFhYZg0aVKJ+QwGA3r37o22bdsiNDQUhw4dwpo1a7Snpd966y307dsXd9xxxw1NvzOaNm2K3r17IyoqCqmpqVizZg0uXrwIADh06BAef/xxrFmzBoBz9wCLxYK0tDQ0aNCgknNQcdbt0WJiYjBs2DC785lMJtx6661o0aIFAgIC8Pvvv2vtci0WC5588kn07dsXbdu2rbS0OnpuFueO3+9qH2QVZ72D7Q3fiPW5Og2OqIxtHjt2DEOGDMHp06cByAaE9h5/HT9+PJ577jn4+PjYjP/73/+Of/7znwDkgwFr1qzBE088UeF0WXNFvuvXr48zZ86gcePGNuOnT5+Obt26aQ0oFy5caLdBub1tVvYxr4zjvWDBAu1ioygKnn76abvzzZo1C59++imMRqM27vXXX8dDDz2EZcuWAQAuXLiAb7/91m7j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fg4HWa+++qrN9rt37y5efPFFMWLECJvx/fr1E0IIce7cOTFv3jwxcOBAbVpQUJCYN2+emDdvnli5cmW52xw0aJC2rL+/v3jsscfE7Nmzxe23325z8//xxx9LPSYAxL333iv+/ve/2wQEHh4eIiEhQQghhMVisZn21ltvaevLzs7WgnEANsGvo0EWABEVFSVmzJgh/vGPf4hHH31U1z5VFV93ixYtxAsvvCCGDBliM37OnDllpun2228Xs2bNshuw33333WLmzJmiTp062rhBgwZp6ysoKBCtW7fWptWrV09Mnz5dvPLKK6JHjx42593Jkye15YoHCx4eHmLMmDHi+eeftzn/AwICRF5enhBCiHnz5olJkybZLPfCCy9o59KmTZvKPI8yMzOFwWDQlh0+fLh4/fXXxbPPPivi4+NFgwYNtCDrr7/+EvPmzROdO3fW5o+JidG2NW/ePHHu3DkhhBCPPfaYzfd1zJgxYvbs2eL++++3CXyXLVumpcXej4+hQ4eKF198UXTp0sVm/CuvvKItFxYWpo0fMGCAeO2118TMmTPF6NGjRXR0NIOsWoZBFlWp4heyDRs2iBdeeEEb/uabb0TTpk21m0Nubu4NC7KmT59uc4M5cOCANu3AgQPCw8NDmz59+nRtWvEga926ddo064ARgMjIyBBCCPHFF1/YvUGqcnNzS5Ta2FNYWCiCg4O1dd18882ioKBAm/7ss8/abH/v3r3aNOubalRUVLnbUv3555826/zuu+9splsHFPfee682vvgxefLJJ7Vp+/bts5m2fv16bdrLL7+sje/UqZM2fvXq1TZBYm5urjbN0SCrSZMmIi0tzWX71Hp8ZGSkdryFEKJjx47atGHDhpWapttuu01YLBYhhBAff/yxzbQ77rhDW+7555/XxgcHB2vj//e//2njDQaDzQ+CgoIC0bZtW236U089pU0rHmRZl0SuW7fOZtr+/fu1acW/06dPnxaOSk1NtRu8qSwWizh16pTNOOvvm71S15SUFOHp6anNs2DBApvpjz/+uDatY8eOpebjkUce0abl5+fbBK6NGjXSpgUEBGjjL126VCI91oEs1Xxsk0Vu5/HHH4enp3wmY+LEiThx4gQA4NFHH4XJZLph6bBuR9SpUyebp9LatGmDTp062Z3XWnh4OIYOHaoNx8XF2UxPS0sDIJ+EVPO2efNm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WPDuu+8CkFW/agn422+/jdOnT+Pbb78FAHz33Xf47rvvnMrXHXfcgXXr1pXo7LVTp0549tlnbcYlJibaPIhhLTg4GA8//LBT26bqiw3ficowYsQI7Nu3D5MmTULTpk3h7e0Nb29vxMbG4pFHHsHevXsxcuTICm8nLi4O//rXvzBs2DA0b94cgYGBMBgMCAoKwi233IJ33nnH4RujwWDA6tWrsWbNGgwZMgRhYWHw9PREYGAgunXrhnnz5uG3335zaRu3sLAw/PLLL/jwww/Rv39/hIaGwmAwwM/PDy1atMDo0aOxbNkyPPPMMy7bZteuXbXqW1VlVcFUxT51pebNm2P//v1488030aNHDwQFBcFgMMDf3x/t2rXDww8/jC+//BKjRo1yyfa++OIL3HvvvQgODna6/daHH36I8ePHo127dqhXrx48PT1Rp04dtGvXDs8++yx++eUXm3ZTHTp0wIoVK3DTTTfZNM635uvri82bN2P58uUYMmQI6tevD09PT/j4+CA2Nhb33XcfPvnkkxI/oqy99957mD9/Plq1agWTyYSGDRti+vTp+O6772zaIM6ZMweTJk1Cp06d0KBBAxiNRvj6+qJFixZ4/PHH8fvvv2vvBKWaTxHWj6EQERERduzYYdO4/vTp0yWeECUqD0uyiIiIiCoBgywiIiKiSsAgi4iIiKgSsE0WERERUSVgSRYRERFRJWCQRURERFQJGGQRERERVQIGWURERESVgEEWERERUSVgkEVERERUCRhkEREREVUCBllEREREleD/AR8PXyqZYiGrAAAAAElFTkSuQmCC",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "data_path = \"/home/shane/onedrive/research/thesis_figures/tensorboard/\"\n",
    "\n",
    "\n",
    "# Get the axis showing number of environment steps (same for all metrics) \n",
    "df = pd.read_csv(\n",
    "      data_path + f\"run-lightning_logs_version_502-tag-train_total_step_count.csv\")\n",
    "step_axis = df[\"Value\"][:200]\n",
    "\n",
    "metric = \"mean_episode_reward\"\n",
    "data = []\n",
    "experiments = [549, 550, 551, 553, 556]\n",
    "entropy_loss = np.array([])\n",
    "for experiment in experiments:\n",
    "  df = pd.read_csv(\n",
    "      data_path + f\"run-lightning_logs_version_{experiment}-tag-train_{metric}.csv\")\n",
    "  # data.append(pd.DataFrame([0]))\n",
    "  data.append(df[\"Value\"][:200])\n",
    "  \n",
    "# Process metrics\n",
    "data = pd.concat(data, axis=1)\n",
    "mean = data.mean(axis=1)\n",
    "minvals = data.min(axis=1)\n",
    "maxvals = data.max(axis=1)\n",
    "\n",
    "# Plot the results\n",
    "fig, ax = plt.subplots()\n",
    "x = np.linspace(min(step_axis), max(step_axis), len(mean))\n",
    "x = np.append([0], x)\n",
    "mean = np.append([0], mean)\n",
    "ax.plot(x/1e6, mean, color='red')\n",
    "minvals = np.append([0], minvals)\n",
    "maxvals = np.append([0], maxvals)\n",
    "plt.fill_between(x/1e6, minvals, maxvals, color='red', alpha=0.25)\n",
    "plt.xlabel('Millons of environment steps')\n",
    "plt.ylabel('Mean episode reward')\n",
    "plt.xlim(0, 2)\n",
    "# plt.ylim(0, 6)\n",
    "plt.grid()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "metadata": {},
   "outputs": [],
   "source": [
    "fig.savefig(data_path + f\"{metric}.pdf\",bbox_inches='tight')"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "mpar-sim-H1aD6MoI-py3.10",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.10.6"
  },
  "orig_nbformat": 4,
  "vscode": {
   "interpreter": {
    "hash": "2980c85c750af39b72a9a9c370f39db8f7dcb13be25d4e37d5740d71b21e3074"
   }
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
